#include <vector>
#include <set>
#include <iostream>
#include <unordered_map>
using namespace std;

void moveZeroes(vector<int>& nums) {
    int pre = 0;
    for(int i = 0; i < nums.size(); i++){
        if(nums[i] != 0){
            swap(nums[i], nums[pre]);
            pre++;
        }
    }
}

int main(){
    vector<int> nums = { 5,7,0,1,8 };
    moveZeroes(nums);
    for (auto i = nums.begin(); i != nums.end(); i++) {
        std::cout << *i << ' ';
    }
    return 0;
}